System and method for distribution of interactive content to multiple targeted presentation platforms

ABSTRACT

A text based script file describing enhancements is parsed to produce platform dependent enhancement files that may be employed to produce enhancements on a set top box, enhanced television, or computer display. A script file may be of XML format and a parser may be an XSL translator. A parser may import HTML and Javascript from other applications. A parser may support a media player for emulation to view video and enhancements. Trigger data for rendering enhancements may be formatted into a javascript array. Trigger events may be employed to replace graphic pointers or text values. Multiple parsers, each supporting a specific platform, allow a single script file to be employed across multiple platforms. New platforms or versions of platforms are supported through new or updated parsers.

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application is based upon and claims priority of U.S.provisional application No. 60/227,063 entitled “A DATA DRIVEN SYSTEMAND METHOD FOR DISTRIBUTION OF INTERACTIVE CONTENT TO MULTIPLE TARGETTEDPRESENTATION PLATFORMS”, filed Aug. 21, 2000 by Steve O. Markel, theentire disclosure of which is herein specifically incorporated byreference for all that it discloses and teaches.

BACKGROUND OF THE INVENTION

[0002] a. Field of the Invention

[0003] The present invention relates to interactive and enhancedtelevision and, more particularly, to a method and system that producesenhanced content that may be employed across a plurality of platformswithout re-editing.

[0004] b. Description of the Background

[0005] A television program may be accompanied by additional informationemployed to enhance the program or to provide viewer interaction.Enhancements have historically included closed captioning andmultilingual support. Advances in networking, computer systems, andvideo production have increased the number and types of enhancementsthat may be provided with a program or advertisement. Enhancements mayinclude stock updates, news stories, Internet links, weather forecasts,bulletins, statistics, trivia, and other information. For example, afootball game may include icons allowing viewing of team players,statistics, trivia and other information such as upcoming games.Further, the advent of set-top-boxes, as may be used in cable andsatellite television systems, allows enhancement information to bepresented in new ways, such as screen overlays and in windows, forexample.

[0006] Enhanced television content may employ a combination of HTML(hypertext markup language), JavaScript, Java and other formats commonto Internet page display. An enhanced display may comprise text, icons,graphics and images placed at locations on or in proximity to thetelevision image. To produce an enhanced display, an author must createa file identifying each displayed element (such as text, icons, graphicsand images), the location where each element is displayed and the timeat which the element may be displayed. Due to numerous differencesbetween presentation platforms, such as set top boxes, satellitereceivers, computers, or interactive televisions, for example, contentproviders have historically been required to select a specific platformin the development of an enhancement application. In order to providesupport for each additional platform, the interactive content providermust introduce potentially significant modifications to the existingapplication, resulting in the ongoing maintenance of multiple codebases, and adding to the time and cost required producing enhanced pagelayouts for multiple platforms.

[0007] Additionally, previous methods employed to enter parametersrequired to generate and position the elements comprising the layout ofenhanced pages have involved significant manually entry. Manual editingof an enhancement file may also introduced unintended changes such thatenhancements are not uniform across platforms. Therefore a new method ofcreating enhanced content that allows utilization across multipleplatforms and provides an accurate preview of enhancements is needed.

SUMMARY OF THE INVENTION

[0008] The present invention overcomes the disadvantages and limitationsof the prior art by providing a system and method that parses a textbased script enhancement file to provide emulation of enhancements andto provide output of platform specific enhancement files. Theenhancement file, which may employ an XML format, contains a descriptionof enhancements including element position, attributes, triggering andlinkage. Linkage associates a file with an element such that a user mayselect a linked object to access websites, launch other applications, orto perform other tasks. Parsing the enhancement file produces an outputfile targeted to a specific platform. The platform may comprise a settop box, interactive television or computer display. A file parsed forcomputer display may be employed for emulation and preview ofenhancements and may contain functions for control of a browser mediaplayer.

[0009] The invention therefore may comprise a method for creating atelevision presentation enhancement comprising accessing a platformindependent enhancement file containing elements and attributes of theelements, applying a first parsing script to the enhancement file toproduce a first output file that may be viewed using a web browser andmedia player, and applying a second parsing script to the enhancementfile to produce a second output file that may be viewed with a set topbox.

[0010] An enhancement file of XML format may be parsed using XSL(Extensible Stylesheet Language) scripts. In the present invention, anXML file with tags for administrative information, layout information,and trigger information is employed. The XML file may be parsed toproduce an output file containing HTML and JavaScript code wherein theversion of HTML and Javascript reflect the level of support provided bythe target platform. Further, the output file may be formatted for amode of enhancement transport. In a first mode of transport,enhancements and triggers are supplied in conjunction with a videoprogram. In a second transport mode, triggers and a locator, such as aURL, are provided in conjunction with a video program and the platformemploys the locator to access enhancement information.

[0011] The invention may further comprise a system for developingtelevision enhancements comprising a computer; a database; a webbrowser; and a parser operable to parse a platform independentenhancement file contained in the database and to produce an output thatmay be viewed employing the browser.

[0012] Advantageously, the invention provides viewing and emulation ofenhancement files employing a personal computer or similar equipment.This allows a team of developers and reviewers to be physicallyseparated, and allows enhancement customers (such as advertisers) topreview material by simply accessing a website.

DESCRIPTION OF THE FIGURES

[0013] In the figures,

[0014]FIG. 1 depicts html and image support for a group of commerciallyavailable set top box products.

[0015]FIG. 2 depicts the software environment of the present invention.

[0016]FIG. 3 is an overview flowchart of parsing an XML file to emulateand preview enhancements.

[0017]FIG. 4 depicts a first flowchart of part of a parsing process.

[0018]FIG. 5 depicts a second flowchart of a parsing process.

[0019]FIG. 6 depicts a third flowchart of a parsing process.

[0020]FIG. 7 depicts a computer display of an enhancement.

DETAILED DESCRIPTION OF THE INVENTION

[0021] Enhanced television content is typically presented using acombination of HTML, JavaScript, Java and other web technologies. Thelevel of support for these technologies varies by the targetedpresentation platform, including the combination of client hardware,operating system, web browser and add-on software. A presentationplatform comprises a set top box, interactive television, computer, orother system operable to receive television signals and to process HTMLand other code and to produce a display comprising a television imageand enhancements. Capabilities vary depending the specific platform.Certain functions may or may not exist, or may be optimized on a givenplatform through the use of custom features. Variants include screensize and resolution, acceptable color combinations, graphics support,and version of HTML or JavaScript, for example. Providing concurrentsupport for the Internet or wireless handheld devices introducesadditional requirements and dependencies. The present inventionovercomes the difficulties of supporting multiple platforms, each havinga specific set of capabilities, by employing a platform independent textbased script file that completely defines the enhancement assets, theirlocation and other attributes, as well as the triggering information.The text based script file is then translated by parsing software toproduce platform dependent files comprising HTML and JavaScript codetailored to the specific platform. The present invention also allowstranslation targeting a web browser and a media player, providingemulation and preview of authored enhancements.

[0022]FIG. 1 depicts HTML and image support for a group of commerciallyavailable set top box products. Set top box models 100 provide HTMLsupport 102 and image support 104. HTML support 102 lists support forhtml 1, 0, 2.0, and 3.2 versions. A limitation of HTML is that someversions lack downward compatibility. For example, HTML versions 4 andhigher do not support all the tags of HTML 3.2. FIG. 1 serves toillustrate that an HTML based author for creating enhanced content wouldnot be able to support a wide range of target platforms. The presentinvention overcomes the disadvantages of HTML based authoring byemploying an authoring tool that generates an XML file that may beparsed using XSL scripts for each platform type to produce HTML code andJavaScript suitable for each platform.

[0023]FIG. 2 depicts the environment of the present invention.Environment 200 comprises database 208 containing user and projectadministration information 202, page layout information 204 and triggercreation information 206. XML file 210 is created using information fromdatabase 208. Import XSL's 212 may be employed to translate HTML andJavaScript into XML file 210. Emulator XSL 214 provides translation ofXML file 210 into HTML and JavaScript, plus provides media playercontrols for emulation and preview. STB Agnostic Sniffer XSL 216includes platform query routines to determine the type of platformrequesting enhancement information. WebTV™ XSL 218 provides translationcompatible with WebTV platforms. AOLTV™ XSL 220 provides translationcompatible with AOLTV platforms. Triggers XSL 222 provides triggers thatmay be transmitted with a television presentation that may be used tosynchronize display of enhancements. Enhancement information may betransmitted with the television presentation, or may be accessed by theplatform in response to the trigger information. Translated files may bestored in server 224.

[0024]FIG. 3 is an overview flowchart of parsing an XML file to emulateand preview enhancements. Process steps shown in FIG. 3 are described ingreater detail in following figures. Parsing process 300 starts withstep 302 where comments are inserted that indicate the project name,page names, date, time, and other information. This information willform in part, the header of the resultant HTML/JavaScript file producedby the parsing process. At step 304, a list of elements comprising anenhancement is scanned and checked for a JavaScript tag. If a JavaScripttag is found, the JavaScript is placed into the output file. At step306, trigger tags are extracted, trigger data is sorted and a JavaScripttrigger array is created that comprises time, element, and new elementvalue. This array is referenced during emulation. At step 308, the listof elements is scanned and a function to change the text value isgenerated for elements with a text area tag. This function allows textin a text area to be changed, such as response to a trigger event. Atstep 310, the list of elements is scanned and a function to change thesource value is applied to graphics elements. At step 312, code thatreferences the trigger array and individual function is inserted. Atstep 314, code is inserted that is executed when the browser window isopened. At step 316, the list of elements is scanned and if an importedHTML tag element is found, the value is extracted and placed in theoutput file. At step 318, code supporting a media player including stop,go, pause, and timer is written to the output file. At step 320, a mediaplayer object is placed in the output file if a ‘TV’ object is presentin the XML source file. Graphics elements are placed in the output filewith ‘img’ tags and text elements are placed in the output file withtext tags. A web browser may access the output file created by the aboveparsing process and the enhancement may be displayed. If theenhancements are related to a television image, the media player moduleallows viewing in conjunction with display of a video image. The moduleallows the media player to present a video sequence, along withenhancements. The media player may be paused, stopped, started, or theuser may go to a specific frame or display time. The following figuresprovide a more detailed description of the steps employed in parsing anXML source file.

[0025]FIG. 4 depicts a first flowchart of part of a parsing process.Process 400 starts at step 402 where a looped process for each page ofthe XML file begins. Page loop 404 provides a return path for theprocess when an additional page or pages remain. At step 406,<HTML>and<HEAD>open tags are written. At step 408 a <TITLE>tag is written withthe page name. At step 410, ownership and contact comment informationmay be written. At step 412, a project name comment may be written. Atstep 414, a page name comment may be written. At step 416, an authorcomment may be written. At step 418, a comment indicating the date theXML file was authored may be written. At step 420, a notes comment maybe written. At step 422 a JavaScript tagging process begins. At step424, an element is accessed from the XML file and is checked todetermine if the element is of import type. If the element is not ofimport type, processing returns to step 422 where another element isaccessed. If all elements have been accessed, processing continues atstep 434. If the result of step 424 is that the accessed element is ofimport type, step 426 writes a language specification indicating thatthe script language is JavaScript. At step 428, the contents within the‘js’ tag of the XML file are written. At step 430, a “</script>” closingtag is written. At step 432, processing continues to step 422 to accessadditional elements. If all elements have been accessed, processingcontinues at step 434. At step 434 JavaScript variable statements fortrigger emulation are written. At step 436, an opening tag for an arrayof triggers is written. At step 438 a processing loop is started. Step438 accesses trigger information, ordered by time, each time the loop isexecuted. At step 440, the trigger time, multiplied by 1000, is written.At step 442, the element name affected by the trigger is written. Atstep 444, parameters associated with each trigger are written. Step 446checks if additional trigger information may be accessed for the currentpage. If additional information may be accessed, processing continues atstep 438. When all trigger information has been accessed, processingcontinues at step 448 where a value indicating the end of the triggerarray is written. Step 450 leads to the steps shown in FIG. 5.

[0026]FIG. 5 depicts a second flowchart of a parsing process. Step 502is a continuation from the steps shown in FIG. 4. At step 504, aprocessing loop accesses each element of the current page. Step 506checks if the element is a text element. If the element is a textelement, step 508 writes a function for changing the text value withinthe text area. Processing then continues with step 514. If step 506determines that the element is not a text element, step 510 checks ifthe element is a graphics element. If the element is a graphics element,step 528 writes a function for changing the source value within an imagefield. Processing then continues with step 503. If step 510 determinesthat the element is not a graphic element, processing continues at step514. At step 514, processing continues at step 504 if additionalelements remain. If all elements have been accessed, processingcontinues at step 516. Step 516 writes a script closing tag. Step 518then writes a script language tag indicating that the script language isJavaScript. Step 522 writes setup variables for a media player. Step 524then converts numeric seconds to an ASCII string. Step 526 writes afunction to handle start, stop and pause controls for the media player.Step 528 writes a function for time display. Time display may be used toindicate the time of a video sequence being shown by the media player.At step 530, event code for selection of the media player ‘go’ button iswritten. At step 532, event code the selection of the media player‘stop’ button is written. At step 534, event code for selection of themedia player ‘preview’ button is written. At step 536, event code iswritten that is executed when the emulation window is opened. At step538 a closing script tag is written. At step 540, a closing head tag iswritten. Step 542 writes a ‘body’ tag with an event handler for windowloading. Step 544 leads to the steps shown in FIG. 6.

[0027]FIG. 6 depicts a third flowchart of a parsing process. Step 602 isa continuation from the steps shown in FIG. 5. At step 604, a processingloop accesses each element within each page. Step 606 checks if theelement is of import type. If the element is not of import type,processing continues at step 604 where the next element is accessed. Ifall elements have been accessed, processing continues at step 616. Ifstep 606 determines that the element is of import type, step 608 writesa division tag (<div>) and writes body code comprising element name,absolute position, top left position and z index. The z index value maybe employed to control the order in which elements are rendered, causingone element to appear on top of another element. Step 610 writes thecontents of the ‘htmlbody’ tag. Step 612 then writes an end <div>tag. Atstep 614, if all elements have not been accessed, processing continuesat step 604. If all elements have been accessed, processing continues atstep 616. Step 616 writes a division tag for media player positioningbuttons. Step 618 writes <table>code with positioning buttons. Step 620writes an end <div>tag, demarking the division started at step 616. Atstep 622, a processing loop accesses each element within each page. Step624 checks if the element type is graphic. If the element is a graphicelement, step 626 writes a division tag for html body code comprisingelement name, absolute position, top left position and z index. Step 628checks if a URL (Universal Resource Locator) exists for the element. Ifa URL exists, step 630 writes a URL html tag. Step 632 then writes an‘img’ tag with element name, border=0, and source. Source is the addressof where the graphic element is stored. Processing then continues atstep 644. If step 628 determines that a URL does not exist for theelement, step 632 writes an ‘img’ tag with element name, border=0, andsource. Processing then continues at step 644. If step 624 determinesthat the element is not a graphics element, processing continues at step634. Step 634 checks if the element is of type ‘tv’. If the element isof type ‘tv’, step 636 writes a division tag for html body codecomprising element name, absolute positioning, top left position, and zindex. Step 638 writes code to embed a media player. Processing thencontinues at step 644. If step 634 determines that the element is not a‘tv’ type element, processing continues to step 640 where a check isperformed if the element is a text area element. If the element is atext area element, step 642 writes a division tag for html body codecomprising element name, absolute positioning, top left position, zindex, font, color, and point size. Processing then continues at step644. If step 640 determines that the element is not a text area element,processing continues at step 644. At step 644 processing loops back tostep 622 if elements remain that have not been accessed. Otherwise,processing continues at step 646. If pages remain that have not beenaccessed, processing continues to step 648 where the process loops backto step 404 of FIG. 4 to access the next page. If all pages have beenaccessed, step 650 writes closing <body><html>tags and the process endsat step 652.

[0028]FIG. 7 depicts a computer display of an enhancement. A text basedscript file, employing an XML format, describing the elements employedto create the enhancement depicted in FIG. 7 is listed in Appendix A.Appendix B lists an HTML file with JavaScript that has been producedfrom the code of Appendix A through the process described in FIGS. 3 to6. Appendix B includes section identifiers that relate the code sectionsto steps shown in FIG. 3.

[0029] In operation, a user logs into an editing system, creates aproject, and then lays out enhanced content pages and creates triggersfor those pages. A database stores project information that comprisespages and triggers and may include project name, author date and otherinformation. Information in the database is employed to create a textbased script file that describes each element, its attributes, itslayout and triggering of the element. In one embodiment of the presentinvention, an XML file is employed. This file is output platformindependent and completely defines the assets, their location and otherattributes, as well as the triggering information necessary for theenhanced content project. The XML file is then processed using one ormore XSL rule based parsers that “translate” the XML file into anotherformat, such as HTML 4.0 and Javascript 1.2, for example. As depicted inFIG. 2, XSL parsers are employed for emulation and for creating platformspecific output files. Parsing of the enhancement file for a particularplatform may include translation of color values. Some platforms do notdisplay pure colors and as such a lookup table or translation algorithmmay be employed to check a color value and to alter the color value. Theprocess shown in FIGS. 3 to 6 produces an HTML and Javascript outputthat may be run on an industry standard web browser and media playersuch as Microsoft Internet Explorer and Windows Media Player, both fromMicrosoft Corporation. Additional information regarding XSL may beobtained from the following books:

[0030] Title: Professional XSL

[0031] Authors: Kurt Cagle et al.

[0032] Publisher: Wrox Press Inc;

[0033] ISBN: 1861003579

[0034] Title: XSL Companion, The

[0035] Author: Neil Bradley

[0036] Publisher: Addison-Wesley Pub Co;

[0037] ISBN: 0201674874

[0038] The foregoing description provides a system and method thattranslates a platform independent enhancement file into platformdependent files without needing to change the authored enhancements,saving time and money and providing a uniformity of enhancement acrossmultiple platforms. The steps shown in the figures need not be performedin the exact order shown. An XML file format has been employed in thedescribed embodiment. Other formats, both public and proprietary, may beemployed to describe enhancements and attributes of the elementscomprising enhancements. Enhancement output files allow enhancement of atelevision broadcast that may employ various methods of deliveringenhancement data. A first method transfers enhancement data as part ofthe broadcast. A second method transfers a trigger and locator with thebroadcast, and the set top box, or other platform, employs the locatorto access enhancement information. The second method of transfer mayfurther comprise receiving information identifying the type of platformrequesting enhancement data (when the platform accesses the locator),and providing enhancement information suited to the requesting platform.A new or modified parser may be employed to support new platforms, ornew versions of platforms. The new or modified parser then may beapplied to a plurality of source enhancement files that need not bemodified. In this manner, the present invention provides costs savingsin supporting new platforms or new versions of platforms.

[0039] The foregoing description of the invention has been presented forpurposes of illustration and description. It is not intended to beexhaustive or to limit the invention to the precise form disclosed, andother modifications and variations may be possible in light in the aboveteachings. The embodiment was chosen and described in order to bestexplain the principles of the invention and its practical application tothereby enable others skilled in the art to best utilize the inventionin various embodiments and various modifications as are suited to theparticular use contemplated. It is intended that the appended claims beconstrued to include other alternative embodiments of the inventionexcept insofar as limited by the prior art. <?xml version=“1.0” ?> -<!-- Viziworx XML Schema 1.1 --> - <project> <emulate>True</emulate><useWMP>False</useWMP> <pjName>demo project</pjName> <date>8/11/20001:14:09 PM</date> <author>Steve Markel</author> <canvas>pal</canvas><notes>simple one page enhancement</notes> - <pages> - <page><pgName>index</pgName> - <element> <elName>tv9</elName> <type>tv</type><src /> <top>0</top> <left>0</left> <height>392</height><width>523</width> <zOrder>−1</zOrder> <url /> <font /> <color /> <size/> <rows>0</rows> <cols>0</cols> </element> - <element><elName>nav</elName> <type>graphic</type><src>C:/viziworx/betaGraphics/nav.jpg</src> <top>0</top><left>519</left> <height>480</height> <width>121</width><zOrder>1</zOrder> <url /> <font /> <color /> <size /> <rows>−1</rows><cols>−1</cols> </element> - <element> <elName>button1</elName><type>graphic</type> <src>C:/viziworx/betaGraphics/button1.jpg</src><top>108</top> <left>530</left> <height>20</height> <width>97</width><zOrder>3</zOrder> <url /> <font /> <color /> <size /> <rows>−1</rows><cols>−1</cols> </element> - <element> <elName>button2</elName><type>graphic</type> <src>C:/viziworx/betaGraphics/button2.jpg</src><top>144</top> <left>526</left> <height>25</height> <width>97</width><zOrder>4</zOrder> <url /> <font /> <color /> <size /> <rows>−1</rows><cols>−1</cols> </element> - <element> <elName>button3</elName><type>graphic</type> <src>C:/viziworx/betaGraphics/button3.jpg</src><top>187</top> <left>525</left> <height>19</height> <width>97</width><zOrder>5</zOrder> <url /> <font /> <color /> <size /> <rows>−1</rows><cols>−1</cols> </element> - <element> <elName>button4</elName><type>graphic</type> <src>C:/viziworx/betaGraphics/button4.jpg</src><top>221</top> <left>528</left> <height>42</height> <width>97</width><zOrder>6</zOrder> <url /> <font /> <color /> <size /> <rows>−1</rows><cols>−1</cols> </element> - <element> <elName>text</elName><type>graphic</type> <src>C:/viziworx/betaGraphics/text.jpg</src><top>391</top> <left>0</left> <height>89</height> <width>521</width><zOrder>2</zOrder> <url /> <font /> <color /> <size /> <rows>−1</rows><cols>−1</cols> </element> - <element> <elName>textarea8</elName><type>ta</type> <src /> <top>406</top> <left>84</left><height>50</height> <width>438</width> <zOrder>9</zOrder> <url /><font>arial</font> <color>#000000</color> <size>normal</size><rows>5</rows> <cols>80</cols> </element> - <element><elName>localogo</elName> <type>graphic</type><src>C:/viziworx/betaGraphics/localogo.jpg</src> <top>408</top><left>17</left> <height>51</height> <width>55</width> <zOrder>7</zOrder><url /> <font /> <color /> <size /> <rows>−1</rows> <cols>−1</cols></element> - <element> <elName>ad</elName> <type>graphic</type><src>C:/viziworx/betaGraphics/ad.gif</src> <top>418</top><left>522</left> <height>29</height> <width>108</width><zOrder>8</zOrder> <url /> <font /> <color /> <size /> <rows>−1</rows><cols>−1</cols> </element> <triggers> <trigger> <time>2</time><prop>txt</prop> <elName>textarea9</elName> <param>the firstprompt</param> </trigger> <trigger> <time>4</time> <prop>txt</prop><elName>textarea9</elName> <param>the second prompt</param> </trigger><trigger> <time>6</time> <prop>src</prop> <elName>ad</elName><param>C:/viziworxTestfiles/betaGraphics/amazon.jpg</param> </trigger><trigger> <time>8</time> <prop>txt</prop> <elName>textarea9</elName><param>the final prompt</param> </trigger> </triggers> </page> </pages></project> Appendix B This appendix shows code generated from the XMLfile listed in Appendix A employing a parser of the present invention.Steps shown in bold reference steps shown in FIG. 3. [Step 302] <html><head> <title>index</title> </!−−. . . . . . . . . . Emulation:index.htm . . . . . . . . . . −−> </!−−Code generated by ViziWorx,Inc.−−> </!−−Please contact us at info@viziworx.com−−> </!−−−−></!−−Project Name: demo project−−> </!−−Page Name: index−−> </!−−Author:Steve Markel−−> </!−−Date Authored: 8/11/2000 1:13:21 PM−−> </!−−Layout:−−> </!−−Notes: simple one page enhancement−−> </!−−−−> [Step 304]<!—(none) −−> [Step 306] <script language=“javascript”> var timerDelta=50; var startCount=0; var timerID; var ms = 0; var iaT = 0;var pauseGo = 0; var aTriggers = new Array( 2*1000, “textarea8(‘thefirst prompt’)”, 4*1000, “textarea8(‘second prompt’)”, 6*1000,“ad(‘C:/viziworx/betaGraphics/amazon.jpg’)”, 8*1000, “textarea8(‘finalprompt’)”, 99999999,“ ”); [Steps 308 and 310] function fnav(theImg) {document.all[“nav”].src = theImg; } function fbutton1(theImg) {document.all[“button1”].src = theImg; } function fbutton2(theImg) {document.all[“button2”].src = theImg; } function fbutton3 (theImg) {document.all[“button3”].src = theImg; } function fbutton4(theImg) {document.all[“button4”].src = theImg; } function ftext(theImg) {document.all[“text”].src = theImg; } function ftextarea8(theTxt) {window.textarea8.innerText = theTxt; } function flocalogo(theImg) {document.all[localogo”].src = theImg; } function fad(theImg) {document.all[“ad”].src = theImg; } </script> [Step 312] <scriptlanguage=“javascript”> <!−− var ms = 0; var state = 0; function_secs2asc(t) { var tSecs = Math.floor(t/1000); var hrs =Math.floor(tsecs/3600); var mins = Math.floor((tSecs− (hrs*3600)) / 60);var secs = tSecs− ((hrs*3600) + (mins*60)); var ms = t % 1000;if(hrs>23) return “ ”; if (hrs < 10) hrs = “0” + hrs; if (mins < 10)mins = “0” + mins; if(secs < 10) secs = “0” + secs; if(ms < 10) ms =“00” + ms; if(ms < 100) ms = “0” + ms; if(ms == 0) ms = “000”; returnhrs + “:” + mins + “:” + secs + “.” + ins; } function _startstop() { if(state == 0) { ms = 0; state = 1; then = new Date();then.setTime(then.getTime() − ms); document.WMPlay.Play();window._frmTr._cmdMPGo.value=“Pause”; } else { state = 0; now = newDate(); ms = now.getTime() - then.getTime(); window.lblTime.innerText =_secs2asc(ms); document.WMPlay.Pause();window._frmTr._cmdNPGo.value=“  Go  ”; } } function _timeDisplay() {timerID = setTimeout(“ _timeDisplay();”, 50); if (state == 1) { now =new Date(); ms = now.getTime() − then.getTime();window.lblTime.innerText = _secs2asc(ms); } } function_cmdMPGo_onclick() { if (timerID) clearTimeout(timerID) _timeDisplay();_startstop(); btnGo_onclick(); } function _cmdMPStop_onclick() {document.WMPlay.Stop(); document.WMPlay.CurrentPosition = 0; state = 0;window.lblTime.innerText = _secs2asc(0); window._frmTr._cmdMPGo.value=“  Go  ”; } function Preview() {  var func, ps, pe, param; if(aTriggers[iaT] <= ms) { func = “f” + aTriggers[iaT+1]; eval(func) iaT =iaT + 2; }  ms = ms + timerDelta;  timerID = setTimeout (“Preview()”,timerDelta);  } function btnStop_onclick() {  clearTimeout(timerID); pauseGo = 0;  } function btnPause_onclick() {  if (pauseGo == 0) {btnStop(); pauseGo = 1; }  else { Preview(); pauseGo = 0; } } functionbtnGo_onclick() {  var offset;  pauseGo = 0;  for (ms=0, iaT=0;aTriggers[iaT] < ms; iaT=iaT+2) {}  Preview(); } [Step 314] functionwindow_onload() { var p0 = document.body.innerHTML.lastIndexOf(“<!−−_stbody_−−>”); if(p0 > −1) { var p1 =document.body.innerHTML.indexOf (“<![CDATA[”, p0) +9; if(p1 > 8) { //ifnot, there was no imported html var s = “<DIV></DIV>]]&gt;” var p2 =document.body.innerHTML.indexOf(s); var c1 = p2-p1;document.body.innerHTML = document.body.innerHTML.substr(p1, c1) +“</div>” + document.body.innerHTML.substr(p2+s.length); } }window._frmTr._cmdMPGo.disabled=true;window._frmTr._cmdMPStop.disabled=true; document.WMPlay.FileName =“demo.asf”; document.WMPlay.ShowControls = false;document.WMPlay.AutoStart = false;window._frmTr._cmdMPGo.disabled=false;window._frmTr._cmdMPStop.disabled=false; } −−> </script> </head> [Step316] <!−− none −−> [Step 318] <body LANGUAGE=“javascript” onload=“returnwindow_onload()”> <!−−_stbody_−−> <div id=“_divTr”style=“position:absolute; top:500; left:0; z-index:0”> <form id=“_frmTr”name=“_frmTr”> <table border=“0”> <tr> <td> <INPUT type=“button”value=“Go” id=“_cmdMPGo” name=“_cmdMPGo” LANGUAGE=“javascript”onclick=“return _cmdMPGo_onclick()” /> <INPUT type=“button” value=“Stop”id=“_cmdMPStop” name=“_cmdMPStop” LANGUAGE=“javascript” onclick=“return_cmdMPStoponclick()” /> </td> <td style=“COLOR: #ff0000; FONT-FAMILY:Verdana; FONT-SIZE: 10pt; FONT-WEIGHT: bold” bgcolor=“#000000”> <LABELname=“lblTime” id=“lblTime”>00:00:00.000</LABEL> </td> </tr> </table></form> </div> [Step 320] <div id=“tv9” style=“position:absolute; top:0;left:0; z-index:−1”> <OBJECT codebase=“CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95” classid=“http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab# Version=6,4,5,715” id=“WMPlay”type=“application/x-oleobject” id=“WMPlay” height=“392” width=“523”standby=“Loading Microsoft Windows Media Player components . . . ”><EMBED type=“application/x-mplayer2” filename=“demo.asf” displaysize=“4”name=“WMPlay” width=“523” height=“392” /> </OBJECT> </div> <divid=“divnav” style=“position:absolute; top:0; left:519; z-index:1” href=“”> <img id=“nav” name=“nav” border=“0” src=“C:/viziworx/betaGraphics/nav.jpg” /> </div> <div id=“divbutton1” style=“position:absolute;top:108; left:530; z-index:3” href=“ ”> <img id=“button1” name=“button1”border=“0” src=“C:/viziworx/betaGraphics/button1.jpg” /> </div> <divid=“divbutton2” style=“position:absolute; top:144; left:526; z-index:4”href=“ ”> <img id=“button2” name=“button2” border=“0”src=“C:/viziworx/betaGraphics/button2.jpg” /> </div> <divid=“divbutton3” style=“position:absolute; top:187; left:525; z-index:5”href=“ ”> <img id=“button3” name=“button3” border=“0”src=“C:/viziworx/betaGraphics/button3.jpg” /> </div> <divid=“divbutton4” style=“position:absolute; top:221; left:528; z-index:6”href=“ ”> <img id=“button4” name=“button4” border=“0”src=“C:/viziworx/betaGraphics/button4.jpg” /> </div> <div id=“divtext”style=“position:absolute; top:391; left:0; z-index:2” href=“ ”> <imgid=“text” name=“text” border=“0” src=“C:/viziworx/betaGraphics/text.jpg” /> </div> <div id=“textarea8” style=“position:absolute;top:406; left:84; width:438; height:50; color:#000000; font-size:normal;font-family:arial; z-index:9”> Preview Text Area </div> <divid=“divlocalogo” style=“position:absolute; top:408; left:17; z-index:7”href=“ ”> <img id=“localogo” name=“localogo” border=“0”src=“C:/viziworx/betaGraphics/localogo.jpg” /> </div> <div id=“divad”style=“position:absolute; top:418; left:522; z-index:8” href=“ ”> <imgid=“ad” name=“ad” border=“0” src“C:/viziworx/betaGraphics/ ad.gif” /></div> </body> </html>

What is claimed is:
 1. A method for creating a television presentationenhancement comprising: accessing a platform independent televisionenhancement file containing elements and attributes of said elements;applying a first parsing script to said enhancement file to produce afirst output file that may be viewed using a web browser and mediaplayer; and applying a second parsing script to said enhancement file toproduce a second output file that may be viewed with a set top box. 2.The method of claim 1 wherein said enhancement file further comprises:XML compliant tags for elements, triggers, and administrativeinformation comprising enhancement file name and enhancement filecreation date.
 3. The method of claim 1 wherein said televisionenhancement file is a text file.
 4. The method of claim 1 furthercomprising: displaying said first output file in a browser window. 5.The method of claim 1 wherein said step of applying a second parsingscript further comprises: specifying an HTML version for said secondoutput file.
 6. The method of claim 1 wherein a link is associated withat least one of said elements.
 7. The method of claim 1 wherein saidattributes of said elements further comprises: a z order value for atleast one of said elements.
 8. The method of claim 1 wherein said firstparsing script is an XSL transformation file.
 9. The method of claim 1wherein said second parsing script is an XSL transformation file. 10.The method of claim 1 further comprising: storing said second outputfile.
 11. The method of claim 1 wherein said second parsing scriptimports HTML code into said second output file.
 12. The method of claim1 wherein accessing said enhancement file further comprises: accessing adatabase.
 13. The method of claim 1 wherein said second parsing scriptis operable to translate a color value.
 14. A method for creating atelevision presentation enhancement comprising: editing a platformindependent television enhancement file to specify elements andattributes of said elements; applying a first parsing script to saidenhancement file to produce a first output file that may be viewed usinga web browser and media player; and applying a second parsing script tosaid enhancement file to produce a second output file that may be viewedwith a set top box.
 15. A parser for producing a platform specifictelevision enhancement file comprising: a function to access a platformindependent television enhancement file comprising project information,a description of an element, the position of said element, and a time atwhich said element may be rendered. a function to create an HTML headercontaining said project information; a function to place said positionof said element between division tags in an HTML output file if saidelement is either a text element or a graphic element; a function toinsert javascript code associated with said element if said element isan imported element; a function to embed a media player in an HTML fileif said element is a representative of a television; a function toupdate an address at which said element may be accessed; and a functionto create and store triggers in a javascript array.
 16. The parser ofclaim 15 wherein said parser is XSL compliant.
 17. The parser of claim15 further comprising: a function that imports HTML code.
 18. The parserof claim 15 further comprising: a function to translate a color value.19. A television enhancement produced by the steps of: accessing adatabase containing a platform independent television enhancement filecomprising elements and attributes of said elements; parsing saidtelevision enhancement file to produce an output file that may be viewedwith a specific platform; and saving said output file.
 20. Thetelevision enhancement of claim 19 wherein said enhancement file is XMLcompliant.
 21. The enhancement file of claim 20 wherein said step ofparsing further comprises: applying an XSL transformation to saidenhancement file.
 22. The enhancement file of claim 20 wherein said stepof parsing further comprises: translating a color value associated withone of said elements.
 23. A system for developing televisionenhancements comprising: a computer; a database; a web browser; and aparser operable to parse a platform independent television enhancementfile contained in said database and to produce an output file that maybe viewed employing said browser.
 24. The system of claim 23 furthercomprising: a parser component operable to enable display of a mediaplayer if said television enhancement file contains an elementrepresentative of a television image.
 25. The system of claim 23 whereinsaid parser is operable to create an output file for a specificplatform.
 26. The system of claim 25 wherein said parser is operable totranslate a color value associated with an element contained in saidtelevision enhancement file.